p(1).
p(2):-!.
p(3).

clasifica(Numero, positivo):- Numero > 0,!.
clasifica(Numero, cero):-Numero = 0,!.
clasifica(Numero, negativo):- Numero < 0,!.


invierte([C|Resto],Salida):-
        asserta(elemento(C)), 
        invierte(Resto,Salida),!.
invierte([],[C|Resto]):-
        retract(elemento(C)),
        invierte([],Resto),!.
invierte([],[]).

permutacion([],[]).
permutacion(L1,[X|L2]):-
        select(X,L1,L3),
        permutacion(L3,L2),!.